package com.example;

import com.example.config.KafkaConfig;
import com.example.model.CanalMessage;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;

import java.io.File;
import java.nio.file.Files;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;
import java.util.concurrent.TimeUnit;

/**
 * 用于模拟用户注册、下单和订单删除的CDC消息发送
 * 消息顺序：
 * 1. 用户注册（INSERT）
 * 2. 创建两个订单（INSERT）
 * 3. 删除一个未支付订单（DELETE）
 */
public class CanalCdcUserOrderDelete extends CanalCdcBase {

    private static final Logger logger = LoggerFactory.getLogger(CanalCdcUserOrderDelete.class);

    @Override
    protected String getJsonFilePath() {
        // 指定要读取的JSON文件路径
        return "data_simulator/canal_cdc_user_order_delete.json";
    }

    public static void main(String[] args) {
        // 创建实例并处理Canal消息
        CanalCdcUserOrderDelete canalCdc = new CanalCdcUserOrderDelete();
        logger.info("开始处理用户订单删除的CDC消息...");
        canalCdc.processCanalMessages();
        logger.info("CDC消息处理完成。");
    }
} 